perm filename NSF.DOC[S84,JMC] blob
sn#752013 filedate 1984-04-27 generic text, type T, neo UTF8
nsf.84[s84,jmc] Research plans 1. Neither the languages of
mathematical logic nor present programming languages have the power
of natural language, although both provide necessary supplements to
natural language in their respective domains. In order to have fully
intelligent computer programs, we need to understand what is powerful
about natural language and how to give this power to programs.
Naturally opinions differ about where this power comes from. Some
suppose it comes simply from the irregularity of natural language,
but irregularity per se does not give power.
Some suggestions have been made to use natural language as an
internal language for AI, but so far nothing has been done that isn't
equivalent to a subset of first order logic. Moreover, the natural
language front ends that have been developed just manage to express
in natural language what we already know how to express in some kind
of computerese. This has the problem backwards. Rather natural
language must teach us to express in a computer things that we have
not previously been able to represent at all.
Our work on non-monotonic reasoning has provided a clue to a part of
the greater expressive power of natural language.
Present mathematical logic is based on the idea of an interpretation
of a language.
1. Non-monotonic programming languages. With few and unimportant
exceptions present programming languages and their compilers are
monotonic in the following sense. Each construction in the source
language, except declarations, gives rise to code in the target
language. However, human descriptions of procedures often do not
have this character.
Artificial intelligence requires formal languages that have
the flexibility of natural language, but it is difficult to make
precise what this flexibility is. One aspect comes from the fact
that the concepts used in natural language do not have to have
general precise definitions or even to be fully understood in order
to be usable. Indeed a large part of philosophy is involved in
trying to make precise concepts from natural language. This
philosophical work typically involves take a concept that people
think they understand and showing, by inventing hypothetical cases,
that we are unsure about what it means in general. However, even
when uncertainty about a concept is demonstrated and remains
unresolved, people still use the concept successfully in its previous
domain. If an artificial intelligence is to use these concepts, we
must build it with a capability like that of a human to use concepts
about whose meaning problems remain. Otherwise, we will have to
solve all the philosophical problems of meaning before we can begin
on artificial intelligence.
Our goal, therefore, is to formalize a certain class of imprecise
concepts. We plan to use ordinary logic coupled with non-monotonic
inference, most likely circumscription. The idea is that a
particular usage of a concept is presumed meaningful and unambiguous
unless there is evidence to the contrary.
An example will help make the problem and our goal clear. Suppose we
want to build a legal expert system to advise a district attorney
about what indictments will be supported by the facts of a particular
case. Suppose that one of the relevant laws passed by a legislature
makes it a crime to attempt to bribe a public official. Thus our
program should sometimes recommend an indictment for violating this
law.
In an environment without expert systems such a law may be on
the books for many years and many cases tried before the following
possibilities for ambiguity are noted.
De dicto defense:
A lawyer offers the following defense. "You have offered
evidence that my client offered the Commissioner of Motor Vehicles
α$5,000 to avoid losing his license for drunk driving, but you
haven't proved that my client knew the man was the Commisioner. My
client may have thought he was just a lawyer. Surely attempting to
bribe a public official requires that the briber know the person is a
public official."
De re defense:
Another lawyer offers a different defense. "You have offered
evidence that my client offere α$5,000 to this man under the
impression that he was the Commissioner, but his appointment hadn't
started yet in the new administration, so he wasn't in fact a public
official. Surely to attempt to bribe a public official, the person
to whom the bribe is offered must actually be a public official".
Indefiniteness defense:
"It is true my client advertised in the %2Criminal Gazette%1
that he would pay α$5,000 to any public official who would fix his
drunk driving conviction, but you haven't exhibited a specific public
official who was likely to read the advertisement. Surely an attempt
to bribe a public official requires a public official one is
attempting to bribe".
Our present point is not the resolution of such ambiguities
in which both lawyers and philosophers have been interested. Instead
we are interested in the fact that indictments have been sought and
cases tried in which no participant was aware of the possibility of
ambiguity in the law. Indeed these particular ambiguities don't
arise in a case where a specific public official whom the defendant
knew to be a public official is involved. In fact even after an
ambiguity has been discovered and a case involving it is still in
litigation, cases not involving the ambiguity are resolved as before.
Our proposed resolution of the problem involves a non-
monotonic rule that a concept is to be regarded as unambiguous in all
cases where an ambiguity cannot be exhibited.
A quite different kind of potential ambiguity arises in the
case of the word "Stanford". We aren't for the moment interested in
its interpretation as designating a person, but suppose the trustees
of Stanford University decided to move the University to Texas.
Suddenly many references to Stanford would become ambiguous in ways
no-one previously contemplated.
Our goal is to make a computer system that could use such a
concept without ever noticing a specific ambiguity. If an ambiguity
arose it might be "puzzled", but it wouldn't lose its ability to use
the concept in unambiguous cases.
Our actual goal with regard to using non-monotonic reasoning
to make more flexible logical languages is not quite as precise as
the above would suggest. There are many interesting phenomena here,
and we propose to explore them. Proposed research
1. Formalization of common sense knowledge and reasoning
2. Non-monotonicity
3. Programming without looking
4. CBCL
5. Mathematical Theory of Computation and programming languages
Modifying programs without reading them (or not reading them much)